package 依赖倒置原则.v2;

public class Tom {
    /**
     * Tom 的兴趣无论怎么暴涨，对于新的课程，我只需要新建一个
     * 类，通过传参的方式告诉 Tom，而不需要修改底层代码。实际上这是一种大家非常熟悉
     * 的方式，叫依赖注入。 注入的方式还有构造器方式和 setter 方式
     */
    public void study(ICourse course) {
        course.study();
    }
    //********************************************//
    // 构造器注入
    private ICourse course;

    public Tom(ICourse course) {
        this.course = course;
    }

    public void study(){
        course.study();
    }

}
